package com.H1023.dao;

import com.H1023.pojo.Book;
import com.H1023.pojo.Type;

import java.util.*;

public interface BookMapper {

    /**
     * 功能：查询全部书籍
     * 输入参数：无
     * 返回值：书籍列表
     * */
    List<Book> queryAll();

    /**
     * 功能：根据书名获取对应的书籍
     * 输入参数：书名
     * 返回值：书籍列表
     * */
    List<Book> queryByName(String name);


    /**
     * 功能：根据ISBN获取对应的书籍
     * 输入参数：ISBN
     * 返回值：书籍列表
     * */
    List<Book> queryByIsbn(String isbn);

    /**
     * 功能：根据作者获取对应的书籍
     * 输入参数：作者
     * 返回值：书籍列表
     * */
    List<Book> queryByAuthor(String author);

    /**
     * 功能：根据出版社获取对应的书籍
     * 输入参数：出版社
     * 返回值：书籍列表
     * */
    List<Book> queryByPress(String press);






    /**
     * 功能：根据字段获取对应类别的书籍
     * 输入参数：类别
     * 返回值：书籍列表
     * */
    List<Book> queryByType(String type);

    /**
     * 功能：根据内容获取对应类别的书籍
     * 输入参数：搜索内容
     * 返回值：书籍列表
     * */
    List<Book> queryByDetail(String detail);


    /**
     * 功能：查询所有字段包含搜索内容的书籍
     * 输入参数：搜索内容
     * 返回值：书籍列表
     * */
    List<Book> queryByDetailAndAll(String detail);


    /**
     * 功能：统计上架书籍数量
     * 输入参数：无
     * 返回值：书籍数量
     * */
   int queryAllCount();


    /**
     * 功能：统计对应类别上架书籍数量
     * 输入参数：类别
     * 返回值：书籍数量
     * */
   int queryCountByTypeName(String type);

    /**
     * 功能：获取所有typename
     * 输入参数：无
     * 返回值：typename list 集合
     * */
    List<Type> queryTypeName();
}
